package com.mmaingenieria.GestorFacturacion.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mmaingenieria.GestorFacturacion.beans.Usuario;
import com.mmaingenieria.GestorFacturacion.enumeraciones.Rol;

/**
 * Servlet implementation class ErrorServlet
 */
public class ErrorServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private RequestDispatcher dispatcher = null; //Creo variable dispatcher
	private final String paginaPrincipalEditor  = "includes/gestionUsuarios.jsp"; // DESARROLLO
    private final String paginaPrincipalVisor = "includes/gestionInformes.jsp"; //Si el rol es de visor le llevare a informes
    private final String paginaLogin = "includes/login.jsp"; //ruta de la pagina
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ErrorServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		GestionUsuariosServlet servletUsuarios = new GestionUsuariosServlet();
		HttpSession session = request.getSession();
	    Usuario usuarioSesion = (Usuario)session.getAttribute("usuario");
	    
	    //Logica para ver si cuando se inicia la aplicacion se mire si existe session, si no existe se lleva al login
	    //si existe se mira el rol y te lleva a una jsp especifica
	    if(usuarioSesion == null){     
	        dispatcher = request.getRequestDispatcher(paginaLogin);//Le digo a donde tiene que ir
	    }
	    else{ //si existe entonces miramos que rol tiene para llevarle a un lado o al otro
	       if (usuarioSesion.getRol().equals(Rol.Administrador) || usuarioSesion.getRol().equals(Rol.Editor)){
	    	   servletUsuarios.doPost(request, response);
	       }
	       if (usuarioSesion.getRol().equals(Rol.Consultor)){
	            dispatcher = request.getRequestDispatcher(paginaPrincipalVisor);//Le digo a donde tiene que ir
	       }
	    }
	    dispatcher.forward(request, response);//Le digo que vaya
	}

}
